package com.sztx.pay.center.dataaccess.dao.mysql;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.sztx.pay.center.dataaccess.domain.UserActAmountDO;
import com.sztx.pay.center.dataaccess.domain.UserActDO;
import com.sztx.se.dataaccess.mysql.BaseMysqlDAO;

public interface UserActMysqlDAO extends BaseMysqlDAO<UserActDO> {
    
//    List<UserActDO> listPage(@Param("userActDO") UserActDO userActDO, @Param("pageQuery") PageQuery pageQuery);

    Integer listCount(@Param("userActDO") UserActDO userActDO);
    
    UserActDO findByUserId(@Param("userId") String userId, @Param("actType") int actType);
    
    UserActDO findActInfo(@Param("userId") String userId, @Param("actType") int actType);
    
    List<UserActDO> findByUsersId(@Param("userList") List<String> userList, @Param("actType") int actType);
    
    List<UserActDO> findByUserIdAndActType(@Param("userId") String userId, @Param("actTypes") List<Integer> actTypes);
    
    List<UserActDO> listByUserId(@Param("userId") String userId);
    
    UserActDO findByActNo(@Param("actNo") String actNo, @Param("isLock") boolean isLock);
    
    UserActDO findByActNoLock(@Param("actNo") String actNo);
    
    int updateAct(@Param("userActDO") UserActDO userActDO, @Param("actNo") String actNo);
    
    int updateUserId(@Param("userActDO") UserActDO userActDO, @Param("userId") String actNo, @Param("actType") int actType);
    
    int updateActBalance(@Param("actNo") String actNo, @Param("tranAmount") long tranAmount);
   
    int updateActFreezeBalance(@Param("actNo") String actNo, @Param("freezeBalance") long freezeBalance);
    
    
   
    int batchSave(@Param("list") List<UserActDO> list);
    
    int batchUpdateActBalance(@Param("map") Map<String, Long> map);
    
    
    int addMoney(@Param("actNo")String actNo,@Param("amount")long amount,@Param("updateUser")String updateUser);
    
    
    List<UserActAmountDO> queryUserAmountCollect(@Param("includeUsers") List<String> includeUsers);
    
    List<UserActDO> findMaybeChangeUserActs(@Param("day") String day);

	List<UserActDO> findHasnotChangeUserAct(@Param("day") String day);
    
}
